#include <QtGui/QApplication>
#include "mainwindow.h"
#include <QDebug>
#include <QMessageBox>

#include "Transformations.h"
#include "Convolution.h"
#include "Matrix2D.h"
#include "FeaturesExtractor.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    MainWindow w; 

    //QImage * img = new QImage(3,3,QImage::Format_RGB32);

   // QImage * imgAux = new QImage("../images/tumors1.png");

    // === Begin Convolution Area

    Matrix2D m(3,1);
    m.set(0, 0, 1);
    m.set(1, 0, 0);
    m.set(2, 0, -1);
    m.set(0, 1, 1);
    m.set(1, 1, 0);
    m.set(2, 1, -1);
    m.set(0, 2, 1);
    m.set(1, 2, 0);
    m.set(2, 2, -1);


//    m.set(0, 0, 1);
//    m.set(1, 0, 0);
//    m.set(2, 0, -1);
//    m.set(0, 1, 2);
//    m.set(1, 1, 0);
//    m.set(2, 1, -2);
//    m.set(0, 2, 1);
//    m.set(1, 2, 0);
//    m.set(2, 2, -1);

//    Convolution conv(3);

//    conv.setMask(m);
//    conv.setFactor(0.11);
//    conv.apply(*imgAux);

//    // === End Convolution Area

//    QVector<QRgb> v = imgAux->colorTable();
//    qDebug() << v.count();

//    RegionGrowing r;

//    r.setImage(imgAux);

//    r.addSeedPoint(70,47);
//    r.addSeedPoint(82,46);
//    r.addSeedPoint(73,64);
//    r.addSeedPoint(76,57);

//    r.addSeedPoint(70,47);
//    r.addSeedPoint(70,48);


//    Segmentation * s = r.segment();

//    QImage * img = s->getRegionImage(true, QColor(255,0,0));

    //w.setOriginalImage(imgAux);
    //w.setSegmentedImage(img);

    w.show();

//    qDebug () << "Area: " << FeaturesExtractor::area(s->getSegmentedObjects()->first());
//    qDebug () << "Perimeter: " << FeaturesExtractor::perimeter(s->getSegmentedObjects()->first());
//    qDebug () << "Gravity center: " << FeaturesExtractor::gravityCenter(s->getSegmentedObjects()->first());
//    qDebug () << "Circularity index: " << FeaturesExtractor::circularityIndex(s->getSegmentedObjects()->first());

//    delete img;
//    delete imgAux;
    return a.exec();
}
